跳到主要内容

签名说明

由于 XT 需要为第三方平台提供一些开放接口,因此需要考虑数据安全问题,例如数据是否被篡改、数据是否过期、数据是否可以重复提交以及接口的访问频率。其中,数据是否被篡改是最重要的问题。

  1. 请先在用户中心申请 appkeysecretkey,每个用户的 appkey 和 secretkey 都不同。

  2. 添加 timestamp,其值应为发送请求时的 unix 时间戳(毫秒),数据的时效性基于此值计算。

  3. 添加 signature,其值通过特定的签名算法规则获得。

  4. 添加 recvwindow(定义请求的有效时间)。有效时间目前相对简单,统一固定为某个值。

    • 当服务器收到请求时,会检查请求中的时间戳,确保其在 2 到 60 秒之间。
    • 任何时间戳超过 5000 毫秒的请求都被视为无效。
    • 可以使用可选参数设置时间窗口值:recvWindow
    • 如果服务器判断客户端的时间戳比服务器提前超过一秒,请求也将无效。
    • 在线条件下,交易的时效性并不总是 100% 可靠,导致您的本地程序与 XT 服务器之间存在不同程度的延迟。这就是我们提供 recvWindow 参数的原因——如果您进行高频交易并需要更严格的交易时效性,可以调整 recvWindow 参数以更好地满足您的需求。

    ⚠️ 不建议使用超过 5 秒的 RecvWindow。

  5. 添加 algorithm(签名方法/算法)。用户根据哈希协议计算签名,推荐使用 HmacSHA256。支持的算法如下:

    • HmacMD5
    • HmacSHA1
    • HmacSHA224
    • HmacSHA256(推荐)
    • HmacSHA384
    • HmacSHA512

参数示例

名称必需示例描述
validate-appkeytruedbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83-
validate-timestamptrue1641446237201-
validate-signaturetrue0a7d0b5e802eb5e52ac0cfcd6311b0faba6e2503a9a8d1e2364b38617877574d-
validate-recvwindowtrue5000(毫秒)-
validate-algorithmstrueHmacSHA256HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512。默认:HmacSHA256
validate-signversionfalse1.0保留字段,签名版本号